1. Field of the Invention
The present invention relates generally to animation and more specifically to computer animation of characters and objects. The present invention is also directed to providing animators with greater control over aspects of simulated objects associated with a character to produce proper changes in those elements even when the simulated objects are xe2x80x9cpinchedxe2x80x9d between non-simulated objects, such as, for example, elements of the character.
2. Description of the Related Art
Traditional animation techniques allow the animator to create the apparent motion of animated characters, to be viewed by a viewer of the animation. The use of computers to simplify the animation process has provided many benefits to the traditional hand-drawn process. Computer-animated characters are well known in the prior art and have been used in many different capacities. Such characters are utilized in traditional movies, videos and online streaming of moving pictures, as well as interactive movies where the motion of characters is often initiated by a user.
Often times in the animation of characters, the characters have xe2x80x9csimulated objects or elementsxe2x80x9d, such as clothing and hair, that are responsive to the main motion of the characters. The motions of some secondary or simulated elements in computer graphics imagery are often too complex for an animator to directly control. Instead of a human animator determining the motion of these simulated elements, computer programs use physically-based numerical methods that simulate the motion of these simulated elements (such as hair or cloth) over time.
This is accomplished by modeling the physical properties of these dynamic elements (how the cloth bends due to forces or collisions with solid objects, how the hair deforms or collides with itself, the external forces on these simulated objects (gravity, wind) and the motions of the non-simulated objects (for example, the characters that cloth rests on or that the hair grows out of). The animation of the non-simulated objects is provided by the animator and is independent of and unaffected by anything that the simulated objects do.
One of the hardest aspects of the computer simulation is making the simulated objects react appropriately to collisions with the non-simulated objects. A typical scenario is for an animator to animate the motions of a character, and then use a simulation to automatically produce motion for the character""s clothing, for example. From the simulation program""s viewpoint, the character""s motion is predetermined; the simulation program""s task is to make the clothing respond to collision and contact with the character as the character moves about.
Difficulties arise when the character""s motion causes the simulated objects to become pinched between two or more surfaces of the character. Up until now, simulation programs have not been able to deal correctly with simulated objects caught in such pinch regions. Correcting the underlying animation so that it is free from physically unrealistic pinches is time-consuming for an animator, and often prohibitively expensive.
For example, FIG. 1a shows a character having simulated pants. As the character squats, as shown in FIGS. 1b and 1c, the simulated pants become pinched between regions near the character""s knees. A closer look, shown in profile in FIG. 2, reveals that the character""s legs actually intersect as she squats. This is shown most clearly in FIG. 2b. This pinching behavior raises a serious problem: where should simulated particles pinched between intersecting objects go?
Prior art methods have not been able to remedy the problems discussed above. For example, MAYACLOTH, from Alias|Wavefront, owned by SGI of Toronto, Canada, is a software implemented 3D cloth modeler for dressing and animating 3D characters. Clothing parameters are controllable by parameters which allow for garments composed of multiple fabrics and the garments can respond to wind, gravity and the underlying motion of the characters.
However, MAYACLOTH tries to resolve pinching by letting the user arbitrarily pick one surface to pay attention to and ignoring the other surfaces. The program""s attempts to work around the problem of pinching does not work very well.
Thus, there is a need for a method that allows dynamically simulated objects to behave well in the presence of animation which xe2x80x9cpinchesxe2x80x9d simulated objects such as cloth, hair or fur between non-simulated objects, such as characters and/or collision objects.
Accordingly, it is a principal object of the present invention to provide a method to allow an animator to control and define realistic behavior for simulated objects that become pinched in the manner described above. The method is called collision flypapering because it locks simulated particles in place when the particles become xe2x80x9cpinched.xe2x80x9d The method applies to any simulated object that is describable as a collection of particles, connected to each other in some manner.
The present invention is directed to a method of simulating motion of objects in computer animation. That process includes providing a motion of a non-simulated object, where the non-simulated object is an element of a computer animation display and the non-simulated object has a spatial position and at least one surface. At least one simulated object is associated with the non-simulated object, where the motions and positions of the at least one simulated object are based on the motion and spatial position of the non-simulated object. When the at least one simulated object is pinched by at least one surface of the non-simulated object, the motions and positions of the at least one simulated object are selectively restrained. Finally, the elements of the computer animation are displayed, including the associated motions and positions of each elements.
The method selectively restrains the motion and position of simulated objects by determining body-space coordinates of partions of the simulated objects (with respect to each non-simulated pinching surface), and then using those body-space coordinates to choose a goal position (with respect to each non-simulated pinching surface).
In addition, the motions of portions of the simulated object can be based on a weighted sum of goal positions of portions of the simulated object, with each goal position being multiplied by one of a set of scalar weight values. The set of scalar weight values can have the same numerical value, have one particular scalar weight value set to a maximum numerical value, have non-uniform values such that portions of the simulated object track one of a multiplicity surfaces preferentially.
The method is applicable to when the non-simulated object is an animated character and the simulated elements are coupled to the animated character. Additionally, the simulated elements may represent hair or clothing attached to the animated character.
Also, the simulated objects may include a first set of simulated objects and a second set of simulated objects and the method may include selectively restraining the motions and positions of the simulated objects. Each set of simulated objects is manipulated with respect to separate reference points on the non-simulated object. In addition, the simulated objects may selectively restrained with reference to a plurality of reference points coupled to those simulated objects.
The above and other objects, features and advantages of the invention will become apparent from the following description of the preferred embodiment taken in conjunction with the accompanying drawings.